package vista;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.JTextField;

import javax.swing.WindowConstants;
import javax.swing.table.AbstractTableModel;
import javax.swing.SwingUtilities;

import modelo.Producto;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class VentanaRegistrarRegalo extends javax.swing.JFrame {
	private JSplitPane spanContenedor;
	private JPanel panDatos;
	private JPanel panLista;
	private JButton cmdLimpiar;
	private JTextField txtCodigo;
	private JLabel lblCodigo;
	private JLabel lblEvento;
	private JLabel lblInvitado;
	private JLabel lblTitulo;
	private JTable tblListado;
	private JScrollPane scpListado;
	private JTextField txtNombre;
	private JComboBox cmbProducto;
	private JLabel lblProducto;
	private JButton cmdRegistrar;
	private JLabel lblApellido;
	private JTextField txtApellido;
	private JLabel lblNombre;
	private JButton cmdBuscar;
	private JTextField txtCedula;
	private JLabel lblCedula;

	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				VentanaRegistrarRegalo inst = new VentanaRegistrarRegalo();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	public VentanaRegistrarRegalo() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			this.setTitle("Registar Regalos Obsequiados");
			{
				spanContenedor = new JSplitPane();
				getContentPane().add(spanContenedor, BorderLayout.CENTER);
				spanContenedor.setPreferredSize(new java.awt.Dimension(752, 393));
				{
					panDatos = new JPanel();
					spanContenedor.add(panDatos, JSplitPane.LEFT);
					panDatos.setPreferredSize(new java.awt.Dimension(269, 370));}
					panDatos.setLayout(null);
					{
						lblCedula = new JLabel();
						panDatos.add(lblCedula);
						lblCedula.setText("Cedula");
						lblCedula.setBounds(39, 135, 63, 15);
						lblCedula.setVisible(false);
					}
					{
						txtCedula = new JTextField();
						panDatos.add(txtCedula);
						txtCedula.setBounds(114, 132, 77, 22);
						txtCedula.setVisible(false);
					}
					{
						cmdBuscar = new JButton();
						panDatos.add(cmdBuscar);
						cmdBuscar.setText("Buscar Evento");
						cmdBuscar.setBounds(45, 97, 150, 22);
						//cmdBuscar.setBounds(60, 175, 126, 22);
					}
					{
						lblNombre = new JLabel();
						panDatos.add(lblNombre);
						lblNombre.setText("Nombre");
						lblNombre.setBounds(39, 162, 66, 15);
						lblNombre.setVisible(false);
					}
					{
						txtNombre = new JTextField();
						panDatos.add(txtNombre);
						txtNombre.setBounds(114, 159, 77, 22);
						txtNombre.setEnabled(false);
						txtNombre.setVisible(false);
					}
					{
						txtApellido = new JTextField();
						panDatos.add(txtApellido);
						txtApellido.setBounds(114, 187, 77, 22);
						txtApellido.setEnabled(false);
						txtApellido.setVisible(false);
					}
					{
						lblApellido = new JLabel();
						panDatos.add(lblApellido);
						lblApellido.setText("Apellido");
						lblApellido.setBounds(38, 190, 67, 15);
						lblApellido.setVisible(false);
					}
					{
						cmdRegistrar = new JButton();
						panDatos.add(cmdRegistrar);
						cmdRegistrar.setText("Registrar");
						cmdRegistrar.setBounds(2, 323, 256, 22);
						cmdRegistrar.setVisible(false);
				}
					{
					
						cmbProducto = new JComboBox();
						panDatos.add(cmbProducto);
						cmbProducto.setBounds(110, 274, 109, 20);
						cmbProducto.setVisible(false);
					}
					{
						lblProducto = new JLabel();
						panDatos.add(lblProducto);
						lblProducto.setText("Producto");
						lblProducto.setBounds(31, 274, 81, 19);
						lblProducto.setVisible(false);
					}
					{
						lblInvitado = new JLabel();
						panDatos.add(lblInvitado);
						lblInvitado.setText("Datos del Invitado");
						lblInvitado.setBounds(60, 105, 159, 15);
						lblInvitado.setVisible(false);
					}
					{
						lblEvento = new JLabel();
						panDatos.add(lblEvento);
						lblEvento.setText("Datos del Evento");
						lblEvento.setBounds(70, 23, 149, 15);
					}
					{
						lblCodigo = new JLabel();
						panDatos.add(lblCodigo);
						lblCodigo.setText("Codigo");
						lblCodigo.setBounds(49, 61, 57, 15);
					}
					{
						txtCodigo = new JTextField();
						panDatos.add(txtCodigo);
						panDatos.add(getCmdLimpiar());
						txtCodigo.setBounds(124, 58, 77, 22);
					}
				{
					panLista = new JPanel();
					spanContenedor.add(panLista,JSplitPane.RIGHT);
					panLista.setPreferredSize(new java.awt.Dimension(166, 277));
					panLista.setLayout(null);
					{
						scpListado = new JScrollPane();
						panLista.add(scpListado);
						scpListado.setBounds(28, 67, 451, 286);
						{
							tblListado = new JTable();
							scpListado.setViewportView(tblListado);
						}
					}
					{
						lblTitulo = new JLabel();
						panLista.add(lblTitulo);
						lblTitulo.setText("Lista de Obsequios");
						lblTitulo.setBounds(193, 28, 186, 15);
					}
					{
						
					}
				}
			}
			pack();
			this.setSize(752, 434);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}
	
	public String getTxtCodigoEvento() {
		return this.txtCodigo.getText();
	}
	
	public String getTxtCedula() {
		return this.txtCedula.getText();
	}

	public void agregarListener(ActionListener accion) {
		cmdBuscar.addActionListener(accion);
		cmdRegistrar.addActionListener(accion);
		cmdLimpiar.addActionListener(accion);
	}

	public void mostrarMensaje(String mensaje) {
		JOptionPane.showMessageDialog(this, mensaje);
		
	}
	
	public void setListado(AbstractTableModel abstractTableModel) {
		tblListado.setModel(abstractTableModel);
	}
	
	public void visibleInvitado(boolean valor){
		lblInvitado.setVisible(valor);
		lblCedula.setVisible(valor);
		txtCedula.setVisible(valor);
		lblNombre.setVisible(false);
		txtNombre.setVisible(false);
		lblApellido.setVisible(false);
		txtApellido.setVisible(false);
		if(valor){
			cmdBuscar.setBounds(45, 175, 150, 22);
			cmdBuscar.setText("Buscar Invitado");
		} else {
			cmdBuscar.setBounds(45, 98, 150, 22);
			cmdBuscar.setText("Buscar Evento");
		}
		
	}
	
	
		
	public void setObsequios(ArrayList<Producto> productos) {
		ComboBoxModel aModel = new DefaultComboBoxModel(new String[] { }); 
		cmbProducto.setModel(aModel);

		for(int i = 0; i < productos.size();i++){
			cmbProducto.addItem(productos.get(i).getCodigo()+"-"+productos.get(i).getNombre());
		}
	}
		public String getCmbProducto(){
			String codigo;
			StringTokenizer tok;
			tok = new StringTokenizer(cmbProducto.getSelectedItem().toString(),"-");
			codigo = tok.nextToken();
			return codigo;
		}
	
	public void visibleCombos(boolean valor){
		lblNombre.setVisible(valor);
		txtNombre.setVisible(valor);
		lblApellido.setVisible(valor);
		txtApellido.setVisible(valor);
		cmdBuscar.setVisible(!valor);
		cmdRegistrar.setVisible(valor);
		lblProducto.setVisible(valor);
		cmbProducto.setVisible(valor);
		
	}
	
	public void habilitarCedula(boolean valor){
		this.txtCedula.setEnabled(valor);
	}
	
	public void habilitarCodigo(boolean valor){
		this.txtCodigo.setEnabled(valor);
	}
	
	public void setValoresInvitado(String nombre, String apellido){
		txtNombre.setText(nombre);
		txtApellido.setText(apellido);
	}
	
	private JButton getCmdLimpiar() {
		if(cmdLimpiar == null) {
			cmdLimpiar = new JButton();
			cmdLimpiar.setText("Limpiar");
			cmdLimpiar.setBounds(146, 363, 123, 22);
		}
		return cmdLimpiar;
	}
	
	public void limpiarDatos(){
		txtApellido.setText("");
		txtCedula.setText("");
		txtCodigo.setText("");
		txtNombre.setText("");
		
	}

	public void setLista(List<String> nombre) {
		
		cmbProducto.removeAll();
		//cmbProducto.addItem("Seleccione una opcion");
		for(int i = 0; i < nombre.size(); i++){
			cmbProducto.addItem(nombre.get(i));
		}
		
		
		
	}
	
	

}
